home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import urllib
- import re
- import gobject
- import gconf
- import rb
- from LyrcParser import LyrcParser
- from AstrawebParser import AstrawebParser
- from LeoslyricsParser import LeoslyricsParser
- from LyricWikiParser import LyricWikiParser
- from WinampcnParser import WinampcnParser
- engines_map = {
- 'lyrc.com.ar': LyrcParser,
- 'astraweb.com': AstrawebParser,
- 'leoslyrics.com': LeoslyricsParser,
- 'lyricwiki.org': LyricWikiParser,
- 'winampcn.com': WinampcnParser }
-
- class Parser(object):
-
- def __init__(self, gconf_keys, artist, title):
- self.title = title
- self.artist = artist
-
- try:
- self.engines = gconf.client_get_default().get_list(gconf_keys['engines'], gconf.VALUE_STRING)
- if self.engines is None:
- self.engines = []
- except gobject.GError:
- e = None
- print e
- self.engines = []
-
-
-
- def searcher(self, plexer, callback, *data):
- for e in self.engines:
- plexer.clear()
- if e in engines_map:
- parser = engines_map[e](self.artist, self.title)
- print 'searching ' + e + ' for lyrics'
- parser.search(plexer.send())
- yield None
- (lyrics,) = (_,)
- if lyrics is not None:
- callback(lyrics, *data)
- return None
- continue
- lyrics is not None
-
- callback(None, *data)
-
-
- def get_lyrics(self, callback, *data):
- rb.Coroutine(self.searcher, callback, *data).begin()
-
-
-